home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 August: Technology Seed / August 1998 ADC Seed CD.toast / Mac OS 8.5b2 / allegro-b2-pseudo-SDK / RIncludes / Controls.r < prev    next >
Encoding:
Text File  |  1998-07-17  |  20.7 KB  |  497 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Controls.r
  3.  
  4.      Contains:    Control Manager interfaces
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Allego Seed, Use with 3.1 Universal Interfaces
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __CONTROLS_R__
  20. #define __CONTROLS_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #define kControlSupportsNewMessages     ' ok '                /*  CDEF should return as result of kControlMsgTestNewMsgSupport */
  27. #define kControlFocusNoPart             0                    /*  tells control to clear its focus */
  28. #define kControlFocusNextPart             (-1)                /*  tells control to focus on the next part */
  29. #define kControlFocusPrevPart             (-2)                /*  tells control to focus on the previous part */
  30.  
  31. #define kControlEntireControl             0
  32. #define kControlKeyFilterBlockKey         0
  33. #define kControlKeyFilterPassKey         1
  34.  
  35.                                                             /*  Meta-font numbering - see not above  */
  36. #define kControlFontBigSystemFont         (-1)                /*  force to big system font */
  37. #define kControlFontSmallSystemFont     (-2)                /*  force to small system font */
  38. #define kControlFontSmallBoldSystemFont  (-3)                /*  force to small bold system font */
  39.  
  40. #define kControlUseFontMask             0x0001
  41. #define kControlUseFaceMask             0x0002
  42. #define kControlUseSizeMask             0x0004
  43. #define kControlUseForeColorMask         0x0008
  44. #define kControlUseBackColorMask         0x0010
  45. #define kControlUseModeMask             0x0020
  46. #define kControlUseJustMask             0x0040
  47. #define kControlUseAllMask                 0x00FF
  48. #define kControlAddFontSizeMask         0x0100
  49.  
  50. #define kControlAddToMetaFontMask         0x0200
  51. #define kControlFontStyleTag             'font'
  52. #define kControlKeyFilterTag             'fltr'
  53.  
  54.                                                             /*  Control feature bits - returned by GetControlFeatures  */
  55. #define kControlSupportsGhosting         0x01
  56. #define kControlSupportsEmbedding         0x02
  57. #define kControlSupportsFocus             0x04
  58. #define kControlWantsIdle                 0x08
  59. #define kControlWantsActivate             0x10
  60. #define kControlHandlesTracking         0x20
  61. #define kControlSupportsDataAccess         0x40
  62. #define kControlHasSpecialBackground     0x80
  63. #define kControlGetsFocusOnClick         0x0100
  64. #define kControlSupportsCalcBestRect     0x0200
  65. #define kControlSupportsLiveFeedback     0x0400
  66.  
  67. #define kControlHasRadioBehavior         0x0800
  68. #define kControlAutoToggles             0x4000
  69. #define kControlSupportsGetRegion         0x00020000
  70.  
  71. #define kControlMsgDrawGhost             13
  72. #define kControlMsgCalcBestRect         14                    /*  Calculate best fitting rectangle for control */
  73. #define kControlMsgHandleTracking         15
  74. #define kControlMsgFocus                 16                    /*  param indicates action. */
  75. #define kControlMsgKeyDown                 17
  76. #define kControlMsgIdle                 18
  77. #define kControlMsgGetFeatures             19
  78. #define kControlMsgSetData                 20
  79. #define kControlMsgGetData                 21
  80. #define kControlMsgActivate             22
  81. #define kControlMsgSetUpBackground         23
  82. #define kControlMsgCalcValueFromPos     26
  83. #define kControlMsgTestNewMsgSupport     27                    /*  See if this control supports new messaging */
  84.  
  85. #define kControlMsgSubValueChanged         25
  86. #define kControlMsgSubControlAdded         28
  87. #define kControlMsgSubControlRemoved     29
  88.  
  89. #define kControlMsgApplyTextColor         30
  90. #define kControlMsgGetRegion             31
  91.  
  92.                                                             /*  Bevel Button Proc IDs  */
  93. #define kControlBevelButtonSmallBevelProc  32
  94. #define kControlBevelButtonNormalBevelProc  33
  95. #define kControlBevelButtonLargeBevelProc  34
  96.  
  97.                                                             /*  Bevel button graphic alignment values  */
  98. #define kControlBevelButtonAlignSysDirection  (-1)            /*  only left or right */
  99. #define kControlBevelButtonAlignCenter     0
  100. #define kControlBevelButtonAlignLeft     1
  101. #define kControlBevelButtonAlignRight     2
  102. #define kControlBevelButtonAlignTop     3
  103. #define kControlBevelButtonAlignBottom     4
  104. #define kControlBevelButtonAlignTopLeft  5
  105. #define kControlBevelButtonAlignBottomLeft  6
  106. #define kControlBevelButtonAlignTopRight  7
  107. #define kControlBevelButtonAlignBottomRight  8
  108.  
  109.                                                             /*  Bevel button text alignment values  */
  110. #define kControlBevelButtonAlignTextSysDirection  0
  111. #define kControlBevelButtonAlignTextCenter  1
  112. #define kControlBevelButtonAlignTextFlushRight  (-1)
  113. #define kControlBevelButtonAlignTextFlushLeft  (-2)
  114.  
  115.                                                             /*  Bevel button text placement values  */
  116. #define kControlBevelButtonPlaceSysDirection  (-1)            /*  if graphic on right, then on left */
  117. #define kControlBevelButtonPlaceNormally  0
  118. #define kControlBevelButtonPlaceToRightOfGraphic  1
  119. #define kControlBevelButtonPlaceToLeftOfGraphic  2
  120. #define kControlBevelButtonPlaceBelowGraphic  3
  121. #define kControlBevelButtonPlaceAboveGraphic  4
  122.  
  123. #define kControlBevelButtonSmallBevelVariant  0
  124. #define kControlBevelButtonNormalBevelVariant  0x01
  125. #define kControlBevelButtonLargeBevelVariant  0x02
  126. #define kControlBevelButtonMenuOnRight     0x04
  127.  
  128. #define kControlBehaviorPushbutton         0
  129. #define kControlBehaviorToggles         0x0100
  130. #define kControlBehaviorSticky             0x0200
  131. #define kControlBehaviorMultiValueMenu     0x4000                /*  only makes sense when a menu is attached. */
  132. #define kControlBehaviorOffsetContents     0x8000
  133.  
  134. #define kControlBehaviorCommandMenu     0x2000                /*  menu holds commands, not choices. Overrides multi-value bit. */
  135. #define kControlContentTextOnly         0
  136. #define kControlContentIconSuiteRes     1
  137. #define kControlContentCIconRes         2
  138. #define kControlContentPictRes             3
  139. #define kControlContentIconSuiteHandle     129
  140. #define kControlContentCIconHandle         130
  141. #define kControlContentPictHandle         131
  142. #define kControlContentIconRef             132
  143.  
  144. #define kControlBevelButtonContentTag     'cont'                /*  ButtonContentInfo */
  145. #define kControlBevelButtonTransformTag  'tran'                /*  IconTransformType */
  146. #define kControlBevelButtonTextAlignTag  'tali'                /*  ButtonTextAlignment */
  147. #define kControlBevelButtonTextOffsetTag  'toff'            /*  SInt16 */
  148. #define kControlBevelButtonGraphicAlignTag  'gali'            /*  ButtonGraphicAlignment */
  149. #define kControlBevelButtonGraphicOffsetTag  'goff'            /*  Point */
  150. #define kControlBevelButtonTextPlaceTag  'tplc'                /*  ButtonTextPlacement */
  151. #define kControlBevelButtonMenuValueTag  'mval'                /*  SInt16 */
  152. #define kControlBevelButtonMenuHandleTag  'mhnd'            /*  MenuHandle */
  153. #define kControlBevelButtonCenterPopupGlyphTag  'pglc'        /*  Boolean: true = center, false = bottom right */
  154.  
  155. #define kControlBevelButtonLastMenuTag     'lmnu'                /*  SInt16: menuID of last menu item selected from */
  156. #define kControlBevelButtonMenuDelayTag  'mdly'                /*  SInt32: ticks to delay before menu appears */
  157.  
  158.                                                             /*  Boolean: True = if an icon of the ideal size for */
  159.                                                             /*  the button isn't available, scale a larger or */
  160.                                                             /*  smaller icon to the ideal size. False = don't */
  161.                                                             /*  scale; draw a smaller icon or clip a larger icon. */
  162.                                                             /*  Default is false. Only applies to IconSuites and */
  163. #define kControlBevelButtonScaleIconTag  'scal'                /*  IconRefs. */
  164.                                                             /*  Slider proc IDs  */
  165. #define kControlSliderProc                 48
  166. #define kControlSliderLiveFeedback         0x01
  167. #define kControlSliderHasTickMarks         0x02
  168. #define kControlSliderReverseDirection     0x04
  169. #define kControlSliderNonDirectional     0x08
  170.  
  171.                                                             /*  Triangle proc IDs  */
  172. #define kControlTriangleProc             64
  173. #define kControlTriangleLeftFacingProc     65
  174. #define kControlTriangleAutoToggleProc     66
  175. #define kControlTriangleLeftFacingAutoToggleProc  67
  176.  
  177.                                                             /*  Tagged data supported by disclosure triangles  */
  178. #define kControlTriangleLastValueTag     'last'                /*  SInt16 */
  179.                                                             /*  Progress Bar proc IDs  */
  180. #define kControlProgressBarProc         80
  181.                                                             /*  Tagged data supported by progress bars  */
  182. #define kControlProgressBarIndeterminateTag  'inde'            /*  Boolean */
  183.                                                             /*  Little Arrows proc IDs  */
  184. #define kControlLittleArrowsProc         96
  185.                                                             /*  Chasing Arrows proc IDs  */
  186. #define kControlChasingArrowsProc         112
  187.                                                             /*  Tabs proc IDs  */
  188. #define kControlTabLargeProc             128                    /*  Large tab size, north facing     */
  189. #define kControlTabSmallProc             129                    /*  Small tab size, north facing     */
  190. #define kControlTabLargeNorthProc         128                    /*  Large tab size, north facing     */
  191. #define kControlTabSmallNorthProc         129                    /*  Small tab size, north facing     */
  192. #define kControlTabLargeSouthProc         130                    /*  Large tab size, south facing     */
  193. #define kControlTabSmallSouthProc         131                    /*  Small tab size, south facing     */
  194. #define kControlTabLargeEastProc         132                    /*  Large tab size, east facing     */
  195. #define kControlTabSmallEastProc         133                    /*  Small tab size, east facing     */
  196. #define kControlTabLargeWestProc         134                    /*  Large tab size, west facing     */
  197. #define kControlTabSmallWestProc         135                    /*  Small tab size, west facing     */
  198.  
  199.                                                             /*  Tagged data supported by progress bars  */
  200. #define kControlTabContentRectTag         'rect'                /*  Rect */
  201. #define kControlTabEnabledFlagTag         'enab'                /*  Boolean */
  202. #define kControlTabFontStyleTag         'font'                /*  ControlFontStyleRec */
  203.  
  204. #define kControlTabInfoTag                 'tabi'                /*  ControlTabInfoRec */
  205. #define kControlTabInfoVersionZero         0
  206.                                                             /*  Visual separator proc IDs  */
  207. #define kControlSeparatorLineProc         144
  208.                                                             /*  Group Box proc IDs  */
  209. #define kControlGroupBoxTextTitleProc     160
  210. #define kControlGroupBoxCheckBoxProc     161
  211. #define kControlGroupBoxPopupButtonProc  162
  212. #define kControlGroupBoxSecondaryTextTitleProc  164
  213. #define kControlGroupBoxSecondaryCheckBoxProc  165
  214. #define kControlGroupBoxSecondaryPopupButtonProc  166
  215.  
  216.                                                             /*  Tagged data supported by group box  */
  217. #define kControlGroupBoxMenuHandleTag     'mhan'                /*  MenuHandle (popup title only) */
  218. #define kControlGroupBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  219.  
  220. #define kControlGroupBoxTitleRectTag     'trec'                /*  Rect. Rectangle that the title text/control is drawn in. (get only) */
  221.                                                             /*  Image Well proc IDs  */
  222. #define kControlImageWellProc             176
  223.                                                             /*  Tagged data supported by image wells  */
  224. #define kControlImageWellContentTag     'cont'                /*  ButtonContentInfo */
  225. #define kControlImageWellTransformTag     'tran'                /*  IconTransformType */
  226.  
  227.                                                             /*  Popup Arrow proc IDs  */
  228. #define kControlPopupArrowEastProc         192
  229. #define kControlPopupArrowWestProc         193
  230. #define kControlPopupArrowNorthProc     194
  231. #define kControlPopupArrowSouthProc     195
  232. #define kControlPopupArrowSmallEastProc  196
  233. #define kControlPopupArrowSmallWestProc  197
  234. #define kControlPopupArrowSmallNorthProc  198
  235. #define kControlPopupArrowSmallSouthProc  199
  236.  
  237.                                                             /*  Placard proc IDs  */
  238. #define kControlPlacardProc             224
  239.                                                             /*  Clock proc IDs  */
  240. #define kControlClockTimeProc             240
  241. #define kControlClockTimeSecondsProc     241
  242. #define kControlClockDateProc             242
  243. #define kControlClockMonthYearProc         243
  244.  
  245. #define kControlClockNoFlags             0
  246. #define kControlClockIsDisplayOnly         1
  247. #define kControlClockIsLive             2
  248.  
  249.                                                             /*  Tagged data supported by clocks  */
  250. #define kControlClockLongDateTag         'date'                /*  LongDateRec */
  251. #define kControlClockFontStyleTag         'font'                /*  ControlFontStyleRec */
  252.  
  253.                                                             /*  User Pane proc IDs  */
  254. #define kControlUserPaneProc             256
  255. #define kControlUserItemDrawProcTag     'uidp'                /*  UserItemUPP */
  256. #define kControlUserPaneDrawProcTag     'draw'                /*  ControlUserPaneDrawingUPP */
  257. #define kControlUserPaneHitTestProcTag     'hitt'                /*  ControlUserPaneHitTestUPP */
  258. #define kControlUserPaneTrackingProcTag  'trak'                /*  ControlUserPaneTrackingUPP */
  259. #define kControlUserPaneIdleProcTag     'idle'                /*  ControlUserPaneIdleUPP */
  260. #define kControlUserPaneKeyDownProcTag     'keyd'                /*  ControlUserPaneKeyDownUPP */
  261. #define kControlUserPaneActivateProcTag  'acti'                /*  ControlUserPaneActivateUPP */
  262. #define kControlUserPaneFocusProcTag     'foci'                /*  ControlUserPaneFocusUPP */
  263. #define kControlUserPaneBackgroundProcTag  'back'            /*  ControlUserPaneBackgroundUPP */
  264.  
  265.                                                             /*  Edit Text proc IDs  */
  266. #define kControlEditTextProc             272
  267. #define kControlEditTextPasswordProc     274
  268.  
  269. #define kControlEditTextInlineInputProc  276                /*  Can't combine with the other variants */
  270.                                                             /*  Tagged data supported by edit text  */
  271. #define kControlEditTextStyleTag         'font'                /*  ControlFontStyleRec */
  272. #define kControlEditTextTextTag         'text'                /*  Buffer of chars - you supply the buffer */
  273. #define kControlEditTextTEHandleTag     'than'                /*  The TEHandle of the text edit record */
  274. #define kControlEditTextKeyFilterTag     'fltr'
  275. #define kControlEditTextSelectionTag     'sele'                /*  EditTextSelectionRec */
  276. #define kControlEditTextPasswordTag     'pass'                /*  The clear text password text */
  277.  
  278. #define kControlEditTextLockedTag         'lock'                /*  Boolean. Locking disables editability. */
  279. #define kControlEditTextFixedTextTag     'ftxt'                /*  Like the normal text tag, but fixes inline input first */
  280. #define kControlEditTextValidationProcTag  'vali'            /*  ControlEditTextValidationUPP. Called when a key filter can't be: after cut, paste, inline text entry, etc. */
  281. #define kControlEditTextInlinePreUpdateProcTag  'prup'        /*  TSMTEPreUpdateUPP and TSMTEPostUpdateUpp. For use with inline input variant... */
  282. #define kControlEditTextInlinePostUpdateProcTag  'poup'        /*  ...The refCon parameter will contain the ControlHandle. */
  283.  
  284. #define kControlStaticTextProc             288
  285. #define kControlStaticTextStyleTag         'font'                /*  ControlFontStyleRec */
  286. #define kControlStaticTextTextTag         'text'                /*  Copy of text */
  287. #define kControlStaticTextTextHeightTag  'thei'                /*  SInt16 */
  288.  
  289. #define kControlStaticTextTruncTag         'trun'                /*  TruncCode (-1 means no truncation) */
  290.                                                             /*  Picture control proc IDs  */
  291. #define kControlPictureProc             304
  292. #define kControlPictureNoTrackProc         305                    /*  immediately returns kControlPicturePart */
  293.  
  294. #define kControlIconProc                 320
  295. #define kControlIconNoTrackProc         321                    /*  immediately returns kControlIconPart */
  296. #define kControlIconSuiteProc             322
  297. #define kControlIconSuiteNoTrackProc     323                    /*  immediately returns kControlIconPart */
  298.  
  299.                                                             /*  icon ref controls may have either an icon, color icon, icon suite, or icon ref. */
  300.                                                             /*  for data other than icon, you must set the data by passing a */
  301.                                                             /*  ControlButtonContentInfo to SetControlData */
  302. #define kControlIconRefProc             324
  303. #define kControlIconRefNoTrackProc         325                    /*  immediately returns kControlIconPart */
  304.  
  305. #define kControlIconTransformTag         'trfm'                /*  IconTransformType */
  306. #define kControlIconAlignmentTag         'algn'                /*  IconAlignmentType */
  307.  
  308. #define kControlIconResourceIDTag         'ires'                /*  SInt16 resource ID of icon to use */
  309. #define kControlIconContentTag             'cont'                /*  accepts a ControlButtonContentInfo */
  310.  
  311.                                                             /*  Window Header proc IDs  */
  312. #define kControlWindowHeaderProc         336                    /*  normal header */
  313. #define kControlWindowListViewHeaderProc  337                /*  variant for list views - no bottom line */
  314.  
  315.                                                             /*  List Box proc IDs  */
  316. #define kControlListBoxProc             352
  317. #define kControlListBoxAutoSizeProc     353
  318.  
  319.                                                             /*  Tagged data supported by list box  */
  320. #define kControlListBoxListHandleTag     'lhan'                /*  ListHandle */
  321. #define kControlListBoxKeyFilterTag     'fltr'                /*  ControlKeyFilterUPP */
  322. #define kControlListBoxFontStyleTag     'font'                /*  ControlFontStyleRec */
  323.  
  324. #define kControlListBoxDoubleClickTag     'dblc'                /*  Boolean. Was last click a double-click? */
  325. #define kControlListBoxLDEFTag             'ldef'                /*  SInt16. ID of LDEF to use. */
  326.  
  327.                                                             /*  Theme Push Button/Check Box/Radio Button proc IDs  */
  328. #define kControlPushButtonProc             368
  329. #define kControlCheckBoxProc             369
  330. #define kControlRadioButtonProc         370
  331. #define kControlPushButLeftIconProc     374                    /*  Standard pushbutton with left-side icon */
  332. #define kControlPushButRightIconProc     375                    /*  Standard pushbutton with right-side icon */
  333.  
  334. #define kControlCheckBoxAutoToggleProc     371
  335. #define kControlRadioButtonAutoToggleProc  372
  336.  
  337.                                                             /*  Tagged data supported by standard buttons  */
  338. #define kControlPushButtonDefaultTag     'dflt'                /*  default ring flag */
  339. #define kControlPushButtonCancelTag     'cncl'                /*  cancel button flag (1.1 and later) */
  340.                                                             /*  Theme Scroll Bar proc IDs  */
  341. #define kControlScrollBarProc             384                    /*  normal scroll bar */
  342. #define kControlScrollBarLiveProc         386                    /*  live scrolling variant */
  343.  
  344.                                                             /*  Theme Popup Button proc IDs  */
  345. #define kControlPopupButtonProc         400
  346. #define kControlPopupFixedWidthVariant     0x01
  347. #define kControlPopupVariableWidthVariant  0x02
  348. #define kControlPopupUseAddResMenuVariant  0x04
  349. #define kControlPopupUseWFontVariant     0x08                /*  kControlUsesOwningWindowsFontVariant */
  350.  
  351. #define kControlPopupButtonMenuHandleTag  'mhan'            /*  MenuHandle */
  352. #define kControlPopupButtonMenuIDTag     'mnid'                /*  SInt16 */
  353.  
  354. #define kControlPopupButtonExtraHeightTag  'exht'            /*  SInt16 extra vertical whitespace within the button */
  355. #define kControlRadioGroupProc             416
  356. #define kControlScrollTextBoxProc         432
  357. #define kControlScrollTextBoxAutoScrollProc  433
  358.  
  359. #define kControlScrollTextBoxDelayBeforeAutoScrollTag  'stdl' /*  UInt32 (ticks until autoscrolling starts) */
  360. #define kControlScrollTextBoxDelayBetweenAutoScrollTag  'scdl' /*  UInt32 (ticks between scrolls) */
  361. #define kControlScrollTextBoxAutoScrollAmountTag  'samt'    /*  UInt16 (pixels per scroll) -- defaults to 1 */
  362. #define kControlScrollTextBoxContentsTag  'tres'            /*  SInt16 (resource ID of 'TEXT'/'styl') -- write only! */
  363.  
  364. #define popupFixedWidth                 0x01
  365. #define popupVariableWidth                 0x02
  366. #define popupUseAddResMenu                 0x04
  367. #define popupUseWFont                     0x08
  368.  
  369. #define popupTitleBold                     0x0100
  370. #define popupTitleItalic                 0x0200
  371. #define popupTitleUnderline             0x0400
  372. #define popupTitleOutline                 0x0800
  373. #define popupTitleShadow                 0x1000
  374. #define popupTitleCondense                 0x2000
  375. #define popupTitleExtend                 0x4000
  376. #define popupTitleNoStyle                 0x8000
  377.  
  378. #define popupTitleLeftJust                 0x00000000
  379. #define popupTitleCenterJust             0x00000001
  380. #define popupTitleRightJust             0x000000FF
  381.  
  382.  
  383. /*--------------------------cctb • Control Color old Lookup Table----------------------*/
  384. #ifdef oldTemp
  385.     type 'cctb' {
  386.             unsigned hex longint;                                    /* CCSeed                */
  387.             integer;                                                /* ccReserved            */
  388.             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  389.             wide array ColorSpec {
  390.                     integer        cFrameColor,                        /* partcode                */
  391.                                 cBodyColor,
  392.                                 cTextColor,
  393.                                 cElevatorColor;
  394.                     unsigned integer;                                /* RGB:    red                */
  395.                     unsigned integer;                                /*        green            */
  396.                     unsigned integer;                                /*        blue            */
  397.             };
  398.     };
  399. #else
  400.     type 'cctb' {
  401.             unsigned hex longint = 0;                                /* CCSeed                */
  402.             integer = 0;                                            /* ccReserved            */
  403.             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  404.             wide array ColorSpec {
  405.                     integer        cFrameColor,                        /* partcode                */
  406.                                 cBodyColor,
  407.                                 cTextColor,
  408.                                 cElevatorColor,
  409.                                 cFillPatColor,
  410.                                 cArrowsLight,
  411.                                 cArrowsDark,
  412.                                 cThumbLight,
  413.                                 cThumbDark,
  414.                                 cHiliteLight,
  415.                                 cHiliteDark,
  416.                                 cTitleBarLight,
  417.                                 cTitleBarDark,
  418.                                 cTingeLight,
  419.                                 cTingeDark;
  420.                     unsigned integer;                                /* RGB:    red                */
  421.                     unsigned integer;                                /*        green            */
  422.                     unsigned integer;                                /*        blue            */
  423.             };
  424.     };
  425. #endif
  426.  
  427.  
  428. /*----------------------------CNTL • Control Template-----------------------------------*/
  429. type 'CNTL' {
  430.         rect;                                                    /* Bounds                */
  431.         integer;                                                /* Value                */
  432.         byte            invisible, visible;                     /* visible                */
  433.         fill byte;
  434.         integer;                                                /* Max                    */
  435.         integer;                                                /* Min                    */
  436.         integer         pushButProc,                            /* ProcID                */
  437.                         checkBoxProc,
  438.                         radioButProc,
  439.                         pushButProcUseWFont = 8,
  440.                         checkBoxProcUseWFont,
  441.                         radioButProcUseWFont,
  442.                         scrollBarProc = 16;
  443.         longint;                                                /* RefCon                */
  444.         pstring;                                                /* Title                */
  445. };
  446.  
  447. #define    popupMenuCDEFproc        1008                            /* ProcID 1008 = 16 * 63        */
  448.  
  449.  
  450. /*--------------------------ldes • List Box Description Template------------------------*/
  451. /*    Used in conjunction with the list box control.                                      */
  452.  
  453. type 'ldes'
  454. {
  455.     switch
  456.     {
  457.         case versionZero:
  458.             key integer = 0;    /* version */
  459.  
  460.             integer;                                                /* Rows                    */
  461.             integer;                                                /* Columns                */
  462.             integer;                                                 /* Cell Height            */
  463.             integer;                                                /* Cell Width            */
  464.             byte            noVertScroll, hasVertScroll;            /* Vert Scroll            */
  465.             fill byte;                                                /* Filler Byte            */
  466.             byte            noHorizScroll, hasHorizScroll;            /* Horiz Scroll            */
  467.             fill byte;                                                /* Filler Byte            */
  468.             integer;                                                /* LDEF Res ID            */
  469.             byte            noGrowSpace, hasGrowSpace;                /* HasGrow?                */
  470.             fill byte;
  471.     };
  472. };
  473.  
  474.  
  475. /*-------------------------------tab# • Tab Control Template-----------------------------*/
  476. type 'tab#'
  477. {
  478.     switch
  479.     {
  480.         case versionZero:
  481.             key integer = 0;    /* version */
  482.  
  483.             integer = $$Countof(TabInfo);
  484.             array TabInfo
  485.             {
  486.                 integer;                                            /* Icon Suite ID        */
  487.                 pstring;                                            /* Tab Name                */
  488.                 fill long;                                            /* Reserved                */
  489.                 fill word;                                            /* Reserved                */
  490.             };
  491.     };
  492. };
  493.  
  494.  
  495. #endif /* __CONTROLS_R__ */
  496.  
  497.